package ar.com.osdepym.agregacionafip.activities.context;

import java.util.List;
import java.util.Vector;

import ar.com.osdepym.agregacionafip.adapters.Contenedor;
import ar.com.osdepym.agregacionafip.exceptions.ResultadoInexistenteException;
import ar.com.osdepym.agregacionafip.exceptions.ResultadoYaExisteExeption;
import ar.com.osdepym.agregacionafip.modelfile.Resultado;
import ar.com.osdepym.agregacionafip.servicios.ServicioResultados;

public class Results {
	private List<Resultado> resultados;

	public Results(){

			this.resultados = new Vector<Resultado>();
		
		
	}
	public Results(List<Resultado> resultados2) {
		this.resultados = resultados2; 
	}
	public void merge(List<Contenedor> contenedores) {
		List<Resultado> finalResultados = new Vector<Resultado>();
		for (Resultado resultado : resultados) {
			if (contenedores.contains(resultado.getContenedor())) {
				finalResultados.add(resultado);
			}
		}
		this.resultados = finalResultados;
	}
	
	public void merge(Results resultadosNuevos) {
		for (Resultado resultado : resultadosNuevos.resultados) {
			if(resultados.contains(resultado)){
			resultados.set(resultados.indexOf(resultado), resultado);
			}else{
				resultados.add(resultado);
			}
		}
		
	}
	
	public Resultado get(Contenedor key) throws ResultadoInexistenteException{
		Resultado r = null; 
		try{
		r= resultados.get(resultados.indexOf(new Resultado(key)));
		}catch (Exception e){
			e.printStackTrace();
		}
		if (r == null)
				throw new ResultadoInexistenteException();
		return r;
	}
	public void put(Resultado value) throws ResultadoYaExisteExeption {
		if(resultados.contains(value))
			throw new ResultadoYaExisteExeption();
		if(value != null)
		resultados.add(value);
	}
	
	public void guardar(){
		ServicioResultados sr = new ServicioResultados();
		sr.guardarResultados(this.resultados);
	}
	
}
